//以下是没有数据代理的代码 读取或修改时会出现死循环 因为检测的是自身的变化
let data = {
  name: 'Tom'
}

Object.defineProperty(data, 'name', {
  get() {
    console.log('读取了data上的name属性:')
    return data.name
  },
  set(value) {
    console.log("设置了data上的name属性:")
    data.name = value
  }
})

//以下是数据代理的代码 可正常进行数据劫持
let data1 = {
  name: 'Tom'
}

let p = {}
Object.defineProperty(p, 'name', {
  get() {
    console.log('读取了data上的name属性:')
    return data1.name
  },
  set(value) {
    console.log("设置了data上的name属性:")
    data1.name = value
  }
})
